// Bachelor of Software Engineering 
// Media Design School 
// Auckland
// New Zealand
// 
// (c) 2005 - 2014 Media Design School 
// 
// File Name : Win32GameEngine.h
// Description : Win32GameEngine header
// Author : Serge Radinovich
// Mail : srad015@hotmail.com

#pragma once


#include "Time.h"
#include "BackBuffer.h"
#include <Windows.h>
#include <queue>
#include <vector>
#include <math.h>
#include <list>
#include <iostream>
#include <fstream>

class Win32GameEngine 
{

protected:
	//Pointer to time struct from WinMain()
	Time* m_pTime;
	//Handles that come in from WinMain()
	HINSTANCE m_hInstance;
	HWND m_hWnd;
	HDC m_hDC;
	//Backbuffer rendering
	BackBuffer* m_pBackBuffer;


	void ShowFPS();
	//Initialize all bitmaps and return a handle accordingly
	HDC InitializeBitmap(int _iResourceID);
	

public:

	Win32GameEngine(void);
	virtual ~Win32GameEngine(void);		

	virtual void Draw() = 0;

};

